Bug 745957 - GTK+/Quartz >= 3.14.8: Symbol not found: _gtk_drag_cancel
authorJohn Ralls <jralls@ceridwen.us>
Sun, 31 May 2015 18:52:35 +0000 (11:52 -0700)
committerJohn Ralls <jralls@ceridwen.us>
Sun, 31 May 2015 18:59:34 +0000 (11:59 -0700)
Implement gtk_drag_cancel, made public in c160ba069 and 62616a71, in
gtkdnd-quartz.c.

gtk/gtkdnd-quartz.c

index a9272984e4f23831f8fed30f157b3491aad60d41..8bc5ef3027af6c1e9c9d039060e55b8793bb9e04 100644 (file)
@@ -62,6 +62,8 @@ static void gtk_drag_source_site_destroy        (gpointer           data);
 static GtkDragSourceInfo *gtk_drag_get_source_info (GdkDragContext *context,
                                                    gboolean        create);
 
+static void gtk_drag_drop_finished (GtkDragSourceInfo *info);
+
 extern GdkDragContext *gdk_quartz_drag_source_context (); /* gdk/quartz/gdkdnd-quartz.c */
 
 struct _GtkDragSourceSite 
@@ -1383,6 +1385,23 @@ gtk_drag_begin (GtkWidget         *widget,
 }
 
 
+/**
+ * gtk_drag_cancel:
+ * @context: a #GdkDragContext, as e.g. returned by gtk_drag_begin_with_coordinates()
+ *
+ */
+void
+gtk_drag_cancel (GdkDragContext *context)
+{
+  GtkDragSourceInfo *info;
+
+  g_return_if_fail (GDK_IS_DRAG_CONTEXT (context));
+
+  info = gtk_drag_get_source_info (context, FALSE);
+  if (info != NULL)
+    gtk_drag_drop_finished (info);
+}
+
 static gboolean
 gtk_drag_source_event_cb (GtkWidget      *widget,
                          GdkEvent       *event,